package mylibrary.com.thinking.java.chapter8.nesting;

class A {

	interface B {
		void f();
	}
	
	public class BImpl implements B {
		public void f() {}
	}
	
	public class BImpl2 implements B {
		public void f() {}
	}
	
	public interface C {
		public void f();
	}
	
	class CImpl implements C {
		public void f() {}
	}
	
	private class CImpl2 implements C {
		public void f() {}
	}
	
	private interface D {
		void f();
	}
	
	private class DImpl implements D {
		public void f() {}
	}
	
	public class DImpl2 implements D {
		public void f() {}
	}
	
	public D getD() {
		return new DImpl2();
	}
	
	private D dRef;
	public void receiveD(D d) {
		dRef = d;
		dRef.f();
	}
	
}






